DSP - USAL33
Modèle de disposition unidimensionnel : aligner et distribuer des éléments sur une ligne (ou colonne).
.container { display: flex; }
Idéal pour : barres de navigation, cartes, centrage, répartition d'espace.
<div class="container"> <!-- flex container --> <div>Item 1</div> <!-- flex item --> <div>Item 2</div> </div>
flex-direction
row
column
justify-content agit sur l'axe principal ; align-items sur l'axe secondaire.
justify-content
align-items
.container { display: flex; flex-direction: row; }
row-reverse
column-reverse
Distribue l'espace le long de l'axe principal.
flex-start
center
space-between
space-around
space-evenly
Aligne sur l'axe secondaire.
stretch
flex-end
baseline
flex-wrap
gap
.container { display: flex; flex-wrap: wrap; /* passe à la ligne si besoin */ gap: 1rem; /* espace entre items */ }
nowrap
wrap
flex
.item { flex: 1; } /* prend tout l'espace dispo */ .fixe { flex: 0 0 200px; } /* taille fixe 200px */
flex = flex-grow flex-shrink flex-basis
flex-grow
flex-shrink
flex-basis
flex: 1
flex: 2
.container { display: flex; justify-content: center; /* horizontal */ align-items: center; /* vertical */ min-height: 100vh; }
Le Saint-Graal du centrage, en 3 lignes.
.navbar { display: flex; justify-content: space-between; align-items: center; }
Logo à gauche, liens à droite, alignés verticalement.
Réaliser une carte avec avatar à gauche, infos à droite, le tout centré.
.card { display: flex; align-items: center; gap: 1rem; padding: 1rem; } .card .avatar { flex: 0 0 80px; } .card .infos { flex: 1; }
display: flex
align-self
order
Flexbox = une dimension. Pour deux dimensions → Grid.